'use strict';
module.exports = {
	/**
	 * XXXnameXXX
	 * @url admin/pages/files_mzgl/dy_tv_series/kh/oc_uploadvideo 前端调用的url参数地址
	 * data 请求参数
	 * @param {String} params1  参数1
	 */
	main: async (event) => {
		let {
			data = {}, userInfo, util, filterResponse, originalParam
		} = event;
		let {
			customUtil,
			uniID,
			config,
			pubFun,
			vk,
			db,
			_
		} = util;
		let {
			uid,
			lists
		} = data;
		let res = {
			code: 0,
			msg: ""
		};
		// 业务逻辑开始-----------------------------------------------------------
		console.log("lists====", lists);

		// 
		let Tv = await vk.baseDao.select({
			dbName: "dy_tv", // 表名
			getCount: false, // 是否需要同时查询满足条件的记录总数量，默认false
			getMain: true, // 是否只返回rows数据，默认false
			pageIndex: 1, // 当前第几页
			pageSize: -1, // 每页条数
			whereJson: { // 条件
				_id: lists[0].tv_id // 金额大于0
			},
			// 按_id降序 asc 升序 desc 降序 
			sortArr: [{
				name: "_id",
				type: "desc"
			}],
		});

		console.log("Tv===", Tv);


		let TvArr = await vk.baseDao.select({
			dbName: "dy_tv_series", // 表名
			getCount: false, // 是否需要同时查询满足条件的记录总数量，默认false
			getMain: true, // 是否只返回rows数据，默认false
			pageIndex: 1, // 当前第几页
			pageSize: -1, // 每页条数
			whereJson: { // 条件
				tv_id: lists[0].tv_id // 金额大于0
			},
			// 按_id降序 asc 升序 desc 降序 
			sortArr: [{
				name: "_id",
				type: "desc"
			}],
		});

		console.log("TvArr===", TvArr);
		
		let Tvdata = []
		for (let i = 0; i < lists.length; i += 1) {
			console.log(lists[i]);
			// console.log("e====",e);
			let TvSeries = await vk.baseDao.select({
				dbName: "dy_tv_series", // 表名
				getCount: true, // 是否需要同时查询满足条件的记录总数量，默认false
				pageIndex: 1, // 当前第几页
				pageSize: -1, // 每页条数
				whereJson: { // 条件
					title: lists[i].title
				},
				// 代表只显示_id和money字段
				fieldJson: {
					_id: false,
					title: true,
					seq: true,
					cover_list: true,
					open_video_id: true,
				},
				// 按_id降序 asc 升序 desc 降序 
				sortArr: [{
					name: "_id",
					type: "desc"
				}],
			});
		
			console.log("TvSeries===", TvSeries);
			Tvdata.push(TvSeries.rows)
		}
		console.log("Tvdata=====", Tvdata);
		
		let A = await vk.baseDao.selects({
			dbName: "a_appid",
			// 主表where条件
			whereJson: {
				appid: lists[0].ma_app_id
			},
		});
		
		console.log("A========", A);
		
		
		let appsecret = A.rows[0].appsecret
		
		console.log("lists[0].ma_app_id",lists[0].ma_app_id);
		
		// 获取accessonToken
		let urlA = "https://open.douyin.com/oauth/client_token/"
		const accessToken = await uniCloud.httpclient.request(urlA, {
			method: 'POST',
			headers: {
				"Content-Type": "application/json",
			},
			data: {
				client_key: lists[0].ma_app_id, // id
				client_secret: appsecret, // 密钥
				grant_type: "client_credential",
			},
			dataType: 'json', // 指定返回值为json格式，自动进行parseK
		})
		
		//创建短剧
		// 有效时间为 2 个小时
		let access_token = accessToken.data.data.access_token
		
		
		// 循环发送上传视频的请求
		
		for (const e of TVdata) {
			console.log("e===", e);
		
			if (e.open_video_id == "") {
				try {
					// 上传短剧至内容库
					let urlT = "https://open.douyin.com/api/playlet/v2/resource/upload/"
					const responseText = await uniCloud.httpclient.request(urlT, {
						method: 'POST',
						headers: {
							"Content-Type": "application/json",
							"access-token": access_token,
						},
						data: {
							resource_type: 1,
							ma_app_id: lists[0].ma_app_id,
							video_meta: {
								url: e.url,
								title: e.title,
								format: e.format,
								use_dy_cloud: e.use_dy_cloud,
								dy_cloud_id: e.dy_cloud_id
							},
						},
						dataType: 'json', // 指定返回值为json格式，自动进行parseK
					})
					console.log("responseText", responseText);
					if (responseText.data.err_msg == "dy_cloud_id参数不合法，当前视频已上传") {
						// 调用查询视频的接口
						console.log("11111111111111111111111", e.dy_cloud_id, lists[0].ma_app_id);
						let urlB = "https://open.douyin.com/api/playlet/v2/video/query/"
						const AAAA = await uniCloud.httpclient.request(urlB, {
							method: 'POST',
							headers: {
								"Content-Type": "application/json",
								"access-token": access_token,
							},
							data: {
								ma_app_id: lists[0].ma_app_id,
								video_id_type: 2,
								dy_cloud_id: e.dy_cloud_id
							},
							dataType: 'json', // 指定返回值为json格式，自动进行parseK
						})
						console.log("AAAA======", AAAA.data.data.open_video_id);
		
						// 填充当前openid
						let bbb = await vk.baseDao.update({
							dbName: "dy_tv_series", // 表名
							whereJson: { // 条件
								dy_cloud_id: e.dy_cloud_id,
		
							},
							dataJson: { // 需要修改的数据
								open_video_id: AAAA.data.data.open_video_id,
								status: true
							}
						});
		
		
					}
		
					let open_video_id = responseText.data.data.video_result.open_video_id
					console.log("open_video_id====", open_video_id);
					// 执行 数据库 updateById 命令
					res.newdata = await vk.baseDao.updateById({
						dbName: "dy_tv_series",
						id: _id,
						dataJson: {
							open_video_id: open_video_id,
							status: true
						},
						getUpdateData: true,
					});
		
					let num = await vk.baseDao.update({
						dbName: "dy_tv_series", // 表名
						whereJson: { // 条件
							dy_cloud_id: e.dy_cloud_id,
		
						},
						dataJson: { // 需要修改的数据
							open_video_id: open_video_id,
							status: true
						}
					});
				} catch (err) {
		
				}
			} else {
				console.log("222");
				let num = await vk.baseDao.update({
					dbName: "dy_tv_series", // 表名
					whereJson: { // 条件
						dy_cloud_id: e.dy_cloud_id,
		
					},
					dataJson: { // 需要修改的数据
						status: true
					}
				});
			}



		// 业务逻辑结束-----------------------------------------------------------
		return res;
	}
}